﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыВремени
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Начисление за работу полную рабочую смену в пределах нормы времени
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"7c0b9e9c-aa08-4ff7-8b89-61089046f52e\", \"Представление\":\"ОтработанноеВПределахНормы\"}")]
		ОтработанноеВПределахНормы = 0,//Отработанное время в пределах нормы времени
	///<summary>
	///Начисление за работу сверх нормы времени
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"743d3b2d-4d08-4b0a-9a28-1767ad1e5309\", \"Представление\":\"ОтработанноеСверхНормы\"}")]
		ОтработанноеСверхНормы = 1,//Отработанное время сверх нормы времени
	///<summary>
	///Неотработанные полные смены
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"d4eed15a-bd82-43e7-aa81-a5c0fe2ba06d\", \"Представление\":\"ЦелодневноеНеотработанное\"}")]
		ЦелодневноеНеотработанное = 2,//Целодневное неотработанное время и командировки
	///<summary>
	///Неотработанные неполные смены
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"4153ab8d-f29a-4a44-bbfb-6861c3cc9463\", \"Представление\":\"ЧасовоеНеотработанное\"}")]
		ЧасовоеНеотработанное = 3,//Часовое неотработанное время и командировки
	///<summary>
	///Дополнительное начисление в пределах нормы времени
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"4bab9129-772d-4aec-ac3e-0615699896e2\", \"Представление\":\"ДополнительноОплачиваемоеВПределахНормы\"}")]
		ДополнительноОплачиваемоеВПределахНормы = 4,//Дополнительно оплачиваемое время в пределах нормы времени
	///<summary>
	///Начисление за работу неполную смену в пределах нормы времени
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"8d626226-d611-4670-9bfc-1bafca22a0f2\", \"Представление\":\"ЧасовоеОтработанноеВПределахНормы\"}")]
		ЧасовоеОтработанноеВПределахНормы = 5,//Часовое отработанное в пределах нормы
	}
	public static partial class ВидыВремени_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Начисление за работу полную рабочую смену в пределах нормы времени
		///</summary>
		public static readonly Guid ОтработанноеВПределахНормы = new Guid("0861898b-4690-2ef5-4ff7-aa087c0b9e9c");//Отработанное время в пределах нормы времени
		///<summary>
		///Начисление за работу сверх нормы времени
		///</summary>
		public static readonly Guid ОтработанноеСверхНормы = new Guid("6717289a-1ead-0953-4b0a-4d08743d3b2d");//Отработанное время сверх нормы времени
		///<summary>
		///Неотработанные полные смены
		///</summary>
		public static readonly Guid ЦелодневноеНеотработанное = new Guid("c0a581aa-2bfe-6da0-43e7-bd82d4eed15a");//Целодневное неотработанное время и командировки
		///<summary>
		///Неотработанные неполные смены
		///</summary>
		public static readonly Guid ЧасовоеНеотработанное = new Guid("6168fbbb-ccc3-6394-4a44-f29a4153ab8d");//Часовое неотработанное время и командировки
		///<summary>
		///Дополнительное начисление в пределах нормы времени
		///</summary>
		public static readonly Guid ДополнительноОплачиваемоеВПределахНормы = new Guid("15063eac-9869-e296-4aec-772d4bab9129");//Дополнительно оплачиваемое время в пределах нормы времени
		///<summary>
		///Начисление за работу неполную смену в пределах нормы времени
		///</summary>
		public static readonly Guid ЧасовоеОтработанноеВПределахНормы = new Guid("af1bfc9b-22ca-f2a0-4670-d6118d626226");//Часовое отработанное в пределах нормы
		public static ВидыВремени Получить(this ВидыВремени Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыВремени Получить(this ВидыВремени Значение, Guid Ссылка)
		{
			if(Ссылка == ОтработанноеВПределахНормы)
			{
				return ВидыВремени.ОтработанноеВПределахНормы;
			}
			else if(Ссылка == ОтработанноеСверхНормы)
			{
				return ВидыВремени.ОтработанноеСверхНормы;
			}
			else if(Ссылка == ЦелодневноеНеотработанное)
			{
				return ВидыВремени.ЦелодневноеНеотработанное;
			}
			else if(Ссылка == ЧасовоеНеотработанное)
			{
				return ВидыВремени.ЧасовоеНеотработанное;
			}
			else if(Ссылка == ДополнительноОплачиваемоеВПределахНормы)
			{
				return ВидыВремени.ДополнительноОплачиваемоеВПределахНормы;
			}
			else if(Ссылка == ЧасовоеОтработанноеВПределахНормы)
			{
				return ВидыВремени.ЧасовоеОтработанноеВПределахНормы;
			}
			return ВидыВремени.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыВремени Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыВремени Значение)
		{
			switch (Значение)
			{
				case ВидыВремени.ОтработанноеВПределахНормы: return ОтработанноеВПределахНормы;
				case ВидыВремени.ОтработанноеСверхНормы: return ОтработанноеСверхНормы;
				case ВидыВремени.ЦелодневноеНеотработанное: return ЦелодневноеНеотработанное;
				case ВидыВремени.ЧасовоеНеотработанное: return ЧасовоеНеотработанное;
				case ВидыВремени.ДополнительноОплачиваемоеВПределахНормы: return ДополнительноОплачиваемоеВПределахНормы;
				case ВидыВремени.ЧасовоеОтработанноеВПределахНормы: return ЧасовоеОтработанноеВПределахНормы;
			}
			return Guid.Empty;
		}
	}
}